The ubiquity of Internet connectivity and the unprecedented growth in network access bandwidth have been fueling the demand for more versatile forms of on-line content. In particular, content providers are catering to an increasing demand for multi-media content, such as audio and video, over the Internet. Existing Internet applications fail to provide an effective means for delivery of bandwidth-intensive multi-media content to end-users.
Currently, video is one of the most bandwidth-demanding forms of on-line content. Traditionally, video, particularly live video, and audio, have been broadcast over cable programming networks. Thus, bandwidth-demanding video signals, such as television (TV) content, have only been offered by the cable programming networks. Even though broadband cable service can provide both data-communication connectivity and cable programming to end-users, cable programming is often carried separately from data services. Consequently, end-users are not able to enjoy high-bandwidth audio or video content over broadband networks that offer Internet connectivity, but not cable programming.
Additionally, successful delivery of high-quality video and audio content over an Internet connection is subject to several service constraints. Historically, access bandwidth has been considered as a bottleneck to throughput. For example, dial-up Internet services generally limit access bandwidth to 56 Kbps. Recent developments in access technologies, such as ADSL, VDSL, direct Ethernet connection, and WLAN, have largely removed this bottleneck by bringing multi-Mbps connections to end-users. Nevertheless, factors other than bandwidth limits, such as server overloading and network congestion, can still pose potential service constraints.
Often, service constraints not directly resulting from limited link bandwidth are side-effects of centralized data transfer, where media content is delivered based on a client-server model. An end-user starts a client program, which contacts a server where the media content is stored, and downloads the content from the server. Even where the network connection provides sufficient bandwidth to accommodate multiple video channels, the server may still become overloaded whenever numerous end-users request streaming video simultaneously. In addition, the connection may be congested with other network traffic. High-performance servers and high-bandwidth network connections can mitigate these problems, but such solutions often are not scalable and can increase service-provisioning costs.
Peer-to-peer overlay (P2P) networks have attracted growing interest as one solution to delivering high-quality video content. A P2P network is formed as part of an application layer that operates over a conventional network-layer infrastructure, such as the Internet. In a P2P network, peer nodes are “aware” of the states of other peer nodes. The task of content delivery is not undertaken by one particular server, and a group of peer nodes can directly exchange data or services among themselves. Thus, P2P networks provide a favorable environment for delivering streaming data, such as video, because server overloading is avoided and network congestion is reduced. P2P networks also scale gracefully as users increase.
The successful operation of a P2P network depends in part on the number of participating users who are willing to share their data via their peer nodes. However, a user might be reluctant to share his data with other. Similarly, where users frequently move newly-downloaded data to a private storage location, such as a non-shared directory, data sharing opportunities become scarce. Such user behavior is partly due to the fact that sharing data can take up extra bandwidth and CPU resources. As a result, a lack of user incentives to share data can indirectly degrade a P2P network's performance and impair user downloading experience. The accompanying frustration could further hinder user participation and further reduce data availability. In the worst case, a vicious cycle could occur and cause the P2P network to fail due to lack of user participation.
Hence, a need arises for a system and method for motivating users to share their data in a P2P network.